Xtender Data Source Setup
The Xtender ("cross-tenant data exchanger" ) engine allows clients with many tenants, who use single tenant data sources, to use a singular semantic model and analytics catalog across all tenants, by auto-switching the underlying data source for each tenant. Xtender for Data Sources or servers is designed to switch out the data server instance, rather than the database.
Xtender only operates well if the reports and semantic model are virtually identical between customers. Automatic column handling in the semantic model may be able to account for some variations.
Note: The Xtender engine is licensed separately.
- Click here to see the Xtender guide.
Enabling Xtender
To enable Xtender, choose a mode from the drop-down on the General setting tab of the data source card:
- Server - Enables Xtender for data source instances (or 'servers').
- Database - Enables Xtender for databases for a given instance (or server).
- Combination - Enables both mechanisms.
Setting up Xtender for Data Sources
To enable Xtender for Data Sources, choose the 'Server' mode from the drop-down on the General setting tab of the data source card,
Once enabled, you'll see a new tab option just below it called Xtender Data Servers. On this tab, you simply need to add pick alternative data sources from the drop-down that will be used instead of this primary data server for each tenant. As users connect from their respective tenants, the queries will be redirected to these alternative data servers instead of the original.
- The drop-down list is derived from the collection of server data source connections configured on Pyramid of the SAME data source type.
- Each data server type needs to be independently configured with its settings.
Chaining or nesting multiple Xtender data server setups between connections will produce unintended consequences.
If no alternative server connection is supplied, the connection reverts to the original primary connection.
Examples

An analytics company has three subsidiaries, Alpha, Beta, and Gamma, each with its own isolated data environment (tenant) within a Pyramid instance. Each tenant connects to a separate instance of the company's "SalesAnalytics" database, which has an identical structure across all subsidiaries.
The company aims to deliver standardized reports and dashboards to all subsidiaries, built on a unified semantic model that matches the database schema.
Implementation of the Xtender engine will facilitate the use of a unified semantic model by providing data source extension across the subsidiary tenants.
Pre-requisites
To allow for the end users to access a common semantic model, databases and data sources across a number of tenants the instance must be enabled for cross tenant roles and cross tenant content.
This is configured within the admin console. See Content Settings for more details.
Create and configure a ‘Master’ tenant
A 'Master' tenant will be established as a central repository for the shared semantic model, database, and analytical content, enabling the use of Xtender and providing access to these resources for all subsidiary tenants.
‘Master’ Data Source
The tenant ‘Selling’ is created to act as the ‘Master’ tenant, within this tenant a data source that will represent the central source that all subsidiaries will connect to.
Within the admin console > Data Source, the data source ‘Source Central’ is created within the tenant ‘Selling’, this data source type matches the type used by the subsidiaries tenants.
During the configuration of this data source, we navigate to the General tab of the data source setup. Then, set the Xtender Engine to 'Server'. This enables the data source to be extended to data sources from other tenants.
With the ‘Xtender Engine’ configured the ‘Xtender Data Servers’ tab is shown and we can move onto defining the mapping for each tenant. The Data Server Sources defines which data source on each subsidiary tenant we wish to this redirect the ‘Source Central’ data.
To ensure each subsidiaries users access the correct data, we'll establish a direct link between tenants and their corresponding data sources. 'Alpha Selling' users will connect to 'Alpha Source', 'Beta Selling' to 'Beta Source', and 'Gamma Selling' to 'Gamma Source'.
This completes the required confgiuration for Xtender and we can complete configuring the data source as per normal.
‘Master’ Database
On completion of creating and configuring the data source, we are required to create a database which will be used to create a ‘master’ semantic model upon.
For this database to function as the master, it must have an identical name and a schema that is nearly identical to the subsidiary databases, specifically in the elements used by the shared semantic model.
The schema components (tables, columns, and data types) referenced by the model must match exactly. Schema elements outside of the model's scope do not need to be identical.
Adding Permissions
Using the admin console > Source Manager
With the Source and Database configured in the 'Selling' master tenant, we will now add the necessary roles from the subsidiary tenants, thereby providing their users with the required access permissions.
With the database in place with the correct permissions, any semantic model generated against the database can take advantage of the Xtender configuration.
Semantic model
For the “SalesAnalytics” database the solution has a semantic model called “Sales Model” that will be used by the analytical content. The Semantic model’s permissions , as per the database’s permissions, are required to have the relevant roles assigned to it. So the same roles from the Subsidiaries are applied to the semantic model that will be used for the shared content.
With the model in place, the common analytical content can be created and shared onto the central tenant so all of the subsidiary tenants can access this.
When a user from one the subsidiary tenants utilizes the common content on this semantic model, the data will be sourced from the that users ‘mapped’ data source and the database on that source.